#include <stdio.h>
int main()
{
    char a = 128; // 实际上放不下128

    // 00000000000000000000000010000000 128的原码  反码 补码
    // 存入只能容纳8个比特位的a  截断
    // 10000000   这是存入的值
    // 要打印了，发生整形提升，a原来是char 类型，有符号
    // 11111111111111111111111110000000 补码
    // %u 认为是无符号的，以无符号的形式打印
    // 打印 11111111111111111111111110000000  对应的整数
    printf("%u\n", a);
    // 4294967168
    printf("%d", a);
    // 00000000000000000000000010000000 128的原码  反码 补码
    // 存入只能容纳8个比特位的a  截断
    // 10000000   这是存入的值
    // 要打印了，发生整形提升，a原来是char 类型，有符号
    // 11111111111111111111111110000000 补码
    // %d 认为是有符号的，以有符号的形式打印
    // 11111111111111111111111110000000  补码
    // 10000000000000000000000001111111  反码
    // 10000000000000000000000010000000 补码
    // 打印 10000000000000000000000010000000  对应的整数是  -128

    return 0;
}